package com.deng.springboot.demo.web;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

/**
 * 打成war放到servlet容器中时需要该ServletInitializer
 *用于web项目
 *      1、servlet3.0规范： 在当前项目的classpath中的 \META-INF\services\javax.servlet.ServletContainerInitializer文件中配置 ServletContainerInitializer的一个实现类
 * 那么当容器启动时就会调用该实现类的onStartup方法，第一个参数 Set<Class<?>> webAppInitializerClasses 就是该实现类的@HandlesTypes注解中配置的接口的所有子类
 *
 *      2、该文件在 spring-web jar包中
 */
public class ServletInitializer extends SpringBootServletInitializer {

    /**
     * 容器启动时 调用 onStartup方法，最终会调用configure方法
     * @param application
     * @return
     */
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        System.out.println("-----------configure----------");
        return application.sources(WebApplication.class);
    }

}
